1. Field of the Invention
The present invention relates to media file distribution, and, more particularly, to a media file distribution system with adaptive transmission protocols in a networked client/server environment which provides automated, highly compressed, user-selectable media file distribution. Particular utility of the present invention is in less-than real-time server-client audio/video file distribution over conventional networks; although the present invention has equal utility in still image and/or high-resolution image file data distribution (e.g., x-ray, MRI, etc.).
2. Description of Related Art
Multimedia file distribution systems, which include distribution of audio and/or video information, are well known in the art. Examples include video-on-demand systems and network-based real-time streaming video systems and methodologies. Recent developments in high-speed network communications (e.g., ISDN, DSL, cable modems, etc.) have permitted the development of real-time streaming video data distribution in a client/server environment. Such systems typically employ extensive video file server systems that can transmit streaming video file data directly to a user's television set or PC (via, for example, Internet communications protocols (e.g., TCP/IP connections based on HTTP or FTP file transfer protocols). These systems typically transmit a separate copy of the streaming video file to each receiver. This uses additional network bandwidth for each additional receiver. This can quickly lead to saturated networks, degrading the quality of the streaming video received, as well as impacting other users and uses of the network. Examples of such file distribution systems are described in U.S. Pat. Nos. 5,132,992; 5,253,275; and 5,550,863 issued to Yurt et al., and hereby incorporated by reference.
Conventional file transfer techniques use either the Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) for the transmission of the data. These two protocols are part of the standard TCP/IP protocol suite. TCP is a connection-based protocol, meaning that there is a logical connection opened between the two systems involved in the transfer. Because of the connection, and the TCP protocol process, this connection is a “reliable connection.” This means that packets are guaranteed to be received, intact and in order, or the connection is broken. Examples of common use of TCP would be browsing on the World Wide Web, File Transfer Protocol, sending and reading email, etc.
UDP is a connectionless protocol, meaning that there is no open connection as you would find in a TCP session. Packets are transmitted by the sender and addressed to the receiver. UDP is not a “Reliable protocol”. Packets in a UDP session, may be received out of sequence and may even be lost. Applications must either accept this loss, or implement some other means for ensuring reliability. Examples of common use of UDP would be Domain Name Service queries, RealAudio/RealVideo, network management functions, etc. Both TCP and UDP are designed for use between two systems. UDP can also be used for “Broadcast”. Broadcast packets are limited to a single Local Area Network (LAN), and so will not cross any routers connected to that LAN.
Current development in the area of IP Multicasting are improving the art in areas such as reliability, performance, session management, network management, statistical research, router management, routing protocols, and other areas required for the smooth operation of IP Multicasting on public networks (e.g., The Internet). However, this art has not overcome the aforementioned problems: either the bandwidth requirements for multiple client access are too large, or the transmission protocol becomes unreliable. Moreover, the prior art is incapable of providing a system which can analyze client transmission demands and adaptively adjust the transmission protocols to most effectively accommodate a plurality of users.